package com.io.feader;

import org.junit.Test;

import java.io.*;
import java.util.ArrayList;

public class Example01 {
    public static void main(String[] args) {
        // 构建FileReader 对象
    }

    @Test
    public void removalRepeat() {
        // 获取目录下面的文件
        String path = "E:\\公司资料\\test\\step2";
        String userIdPath = "E:\\公司资料\\test\\20220112-190.csv";// 读取的登录信息
        /**
         * 1.获取本次人员名单信息
         * 2.扫描当前已经爬取题目的文件内容
         * 3.进行匹配，求两者集合中的差集合，进行删除文件
         */
        // 创建输入流
        File fileDir = null;
        String str = "";
        ArrayList<String> userList = new ArrayList<>();
        ArrayList<String> subjectList = new ArrayList<>();
        int num = 0;
        try (
                FileInputStream fis = new FileInputStream(userIdPath);
                InputStreamReader isr = new InputStreamReader(fis,"GBK");
                BufferedReader bf = new BufferedReader(isr)) {
            while ((str = bf.readLine()) != null) {
                // 1,xxx,441723****5610,装饰装修施工员
                String[] arrStr = str.trim().split(",");
                userList.add(arrStr[2]+"_"+arrStr[3]+".csv");
            }
            // 获取文件夹目录下面的文件名称
            fileDir = new File(path);
            String[] list = fileDir.list((dir, name) -> {
                return name.endsWith(".csv");
            });
            if (list.length == 0) {
                System.out.println("目录下面的文件数量为0");
            } else {
                for (String s : list) {
                    // 判断：如果文件不在用户名单 删除操作
                    if (!userList.contains(s)) {
                        // 删除文件 -- 可以考虑使用复制 不需要删除操作
                        boolean delete = new File(path + "\\" + s).delete();
                        if (delete) {
                            System.out.println("--- 执行删除 ---");
                            num++;
                        }
                    }
                }
                System.out.println("成功删除文件数量："+num);
            }
        } catch (Exception e) {
            System.out.println("错误信息"+e);
        }
    }


    @Test
    public void createFile() {
        // 根目录下面创建
        File file = new File("a.txt");
        if (file.exists()) {
            System.out.println("文件已经存在");
        } else {
            // 创建文件
            try {
                file.createNewFile();
                System.out.println("创建成功");
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("创建失败");
            }
        }
    }

    @Test
    public void writeContent() {
        // 写入文件
        // 1.创建文本输出流 -- 多字节
        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream("a.txt");
            // 写入内容
            String str = "hello,world Java世界！";
            // 写入内容
            fileOutputStream.write(str.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 释放资源，关闭流
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
